SOS_SCHEMA_MODULE
Section: SOS META CLASSES (3S)
Updated: 28/10/91
Index
Return to Main Contents
man2html: unable to open or read file
/usr/lib/ms/ms.acc
NAME
sos_Schema_module, sos_Schema_impl, sos_Type_table - module of SOS type declarations
SYNOPSIS
#include "<SOS>/include/mta_sos.h"
typedef Mapping <sos_String, sos_Schema_type> sos_Type_table;
class sos_Schema_impl {};
class sos_Schema_module : sos_Named
{
public:
static Directory<sos_Schema_module> schema_dir ();
static sos_Schema_module lookup (sos_String);
static sos_Schema_module retrieve (sos_Container);
local sos_String name;
local sos_Imports imports;
local List <sos_Schema_type> types;
local sos_Type_table type_table;
sos_Bool has_external_import;
sos_Bool has_external_types;
local List <sos_Schema_impl> impls;
sos_Schema_type lookup_type (sos_String, sos_Bool = FALSE);
void open_imports ();
void close_imports ();
void install ();
};
DESCRIPTION
The class sos_Schema_impl is defined as a
hook for implementation dependent subclasses, like
cci_Schema_impl that are used by the specific
run-time systems. The methods of these subclasses are still emerging;
standard methods have not yet be defined.
sos_Schema_module implements SOS
schema modules, that means collections of SOS type definitions.
- sos_Schema_module::schema_dir ()
-
yields the SOS schema directory in which all SOS schema modules
are located. The directory will be created if it does not exist.
- sos_Schema_module::lookup (name)
-
yields the SOS schema module from the schema directory with the
given name; if no such schema module exists,
the result is NO_OBJECT.
- sos_Schema_module::retrieve (sct)
-
yields the SOS schema module of the schema container
sct.
- [get/set]_name(...)
-
the name of the schema module.
- [get/set]_imports(...)
-
the schema modules that are imported
- [get/set]_types(...)
-
the list of types as they are declared in the schema, including
implicitly declared types, like forward types and implicit
instantiations of generic classes.
- [get/set]_type_table(...)
-
the mapping from strings to types declared in the schema,
including the mapping from alias names to the corresponding types. The
mapping is based on the equality of the inserted keys (strings).
- [get/set]_has_external_import(...)
-
the indication whether the schema has an external import through
with extern;
- [get/set]_has_external_types(...)
-
the indication whether the schema contains one or more external
type declarations.
- [get/set]_impls(...)
-
the list of implementations that have been generated for this
schema.
- lookup_type(name, look_for_alias)
-
yields an sos_Schema_type with the given
name which is declared in the schema or
(otherwise) in one of the imported modules; if no such type exists, the
result is NO_OBJECT. If
look_for_alias is
TRUE, the given name
may be an alias for the looked-up type; otherwise it must be the (exact)
name of the type.
- open_imports()
-
opens the containers of all imported schema modules for
READING
(WAITING).
- close_imports()
-
closes the containers of all imported schema modules.
- install()
-
inserts the schema into the schema directory. If a schema with the
same name already exists, this schema is destroyed (including the
desctruction of its container).
FILES
- <SOS>/src/mta/mta.sos
-
SOS schema file
- <SOS>/src/mta/mta_sos.h
-
complete schema interface
- <SOS>/src/mta/mta_use.h
-
restricted schema interface
- <SOS>/src/mta/mta.c
-
method implementation
- <SOS>/lib/sos.a
-
SOS library
WARNINGS
The implementation makes the implicit assumption that all objects
associated with a schema are located in the same container as the
schema. This has at least an effect on synchronization strategy. We are
not aware of other impacts but they should be considered.
SEE_ALSO
cci_Schema_impl(3), sos_Imports(3)
AUTHOR
Jurgen Uhl
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- FILES
-
- WARNINGS
-
- SEE_ALSO
-
- AUTHOR
-
This document was created by
man2html,
using the manual pages.
Time: 00:37:57 GMT, March 30, 2022